/**
 * @(#)Principal.java
 *
 *
 * @author
 * @version 1.00 2011/11/21
 */
import java.io.InputStreamReader;
import java.io.FileInputStream;
import java.io.BufferedReader;
import java.io.FileNotFoundException;
import java.io.IOException;

import java.util.ArrayList;
import java.util.StringTokenizer;

import javax.swing.JFrame;

public class Principal {
    public static void main(String[] args){
    	ArrayList<Entrada> diccionario=new ArrayList<Entrada>();
    	System.out.println("Cargando el diccionario...");

    	try{
	    	BufferedReader lector=new BufferedReader(new InputStreamReader(new FileInputStream("cedict_ts.u8"), "UTF-8"));

	    	int contador=0;

	    	String l=null;
	    	while((l=lector.readLine())!=null){
	    		try{
		    		if(l.startsWith("#")){
		    			continue;
		    		}

		    		int espacio1=l.indexOf(" ");

		    		String trad=null;
		    		if(espacio1>0){
		    			trad=l.substring(0, espacio1);
		    		}

		    		int espacio2=l.indexOf(" ", espacio1+1);
		    		String simp=null;
		    		if(espacio2>0 && espacio1+1<=espacio2){
		    			simp=l.substring(espacio1+1, espacio2);
		    		}

		    		int abre=l.indexOf("[");
		    		int cierra=l.indexOf("]");

		    		String rom=l.substring(abre+1, cierra);

		    		ArrayList<String> acepciones=new ArrayList<String>();
		    		StringTokenizer frases=new StringTokenizer(l, "/");

		    		for(int k=0; frases.hasMoreTokens(); k++){
		    			String siguiente=frases.nextToken();
		    			if(k!=0){
		    				acepciones.add(siguiente);
		    			}
		    		}


		    		diccionario.add(new Entrada(trad, simp, rom, acepciones));
	    		}catch(Exception e){
	    			System.out.println(e.getMessage());
	    			continue;
	    		}
	    	}
	    	lector.close();
	    	System.out.println("Proceso terminado");

	    	JFrame ventana=new JFrame("Chinese parser - DactylSoft");
	    	ventana.setContentPane(new ChineseParser(diccionario));
	    	ventana.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
	    	ventana.pack();
	    	ventana.show();
    	}catch(FileNotFoundException e){
    		System.out.println("No se encontro el archivo del diccionario");
    	}catch(IOException e){
    		System.out.println("Error de e/s");
    	}catch(Exception e){
    		System.out.println(e.getMessage());
    	}
    }
}